home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / STUTTGART / UNIXTOOL / M4SRC / _files / M4man._M4 next >
Text File  |  1989-11-06  |  8KB  |  176 lines

  1. ->M4man
  2.  
  3.  Name: M4 - macro processor
  4.  
  5. Usage: m4 [options] [file...]
  6.  
  7. Description
  8. ===========
  9. M4 is a macro processor intended as a front end for high level languages 
  10. like C. Each of the argument files is processed in order; if there are no files
  11. or if a file name is -, the standard input is read. The processed text is
  12. written on the standard output.
  13.  
  14. The options and their effects are as follows;
  15.  
  16. -s Enable line sync output for the C preprocessor (i.e. #line directives).
  17.    This option must appear first.
  18.  
  19. -Dname[=val]
  20.    Defines 'name' to val or to null in val's abscence.
  21.  
  22. Uname undefines name
  23.  
  24. Macro calls have the form;
  25.    name(arg1,arg2,...., argn)
  26.  
  27. The ( must immediately follow the name of the macro. If the name of a defined
  28. macro is not followed by a (, it is deemed to be a call of that macro with no
  29. arguments. Potential macro names consist of alphabetic letters, digits, and
  30. underscore _, where the first character is not a digit. 
  31.  
  32. Leading unquoted blanks, tabs, and new-lines are ignored while collecting
  33. arguments. Left and right single quotes are used to quote strings. The value
  34. of a quoted string is the string stripped of the quotes.
  35.  
  36. When a macro name is recognized, its arguments are collected by searching
  37. for a matching right parenthesis. If fewer arguments are supplied than are in 
  38. the macro definition, the trailing arguments are taken to be null. Macro
  39. evaluation proceeds normally during the collection of the arguments, and any
  40. commas or right parnethesis which happen to turn up within the value of a
  41. nested call are as effective as those in the original input text. After
  42. argument collection, the value of the macro is pushed back onto the input
  43. stream and rescanned.
  44.  
  45. The following macros are available when m4 is started. They may be redefined,
  46. but once this is done, the original meaning is lost. Their values are null
  47. unless otherwise stated.
  48.  
  49. define    the second argument is installed as the value of the macro whose name
  50.           is the first argument. Each occurence of $n in the replacement text,
  51.           where n is a digit is replaced by the n-th argument. Argument 0 is
  52.           the name of the macro; missing arguments are replaced by the null
  53.           string; $# is replaced by the number of arguments; $* is replaced by 
  54.           a list of all the arguments separated by commas; $@ is like $*, but
  55.           each argument is quoted (with the current quotes).
  56.  
  57. undefine  removes the definition of the macro named in its argument.
  58.  
  59. defn      returns the quoted definition of the macro named in its argument.
  60.           It is useful for renaming macros but will not work on builtins.
  61.  
  62. pushdef   like define, but saves any previous definition.
  63.  
  64. popdef    removes current definition of its argument(s), exposing the previous 
  65.           one, if any.
  66.  
  67. ifdef     if the first argument is defined, the value is the second argument,
  68.           otherwise the third. IF there is no third argument, the value is
  69.           null.
  70.  
  71. shift     returns all but its first argument. The other arguments are quoted
  72.           and pushed back with commas in between. The quoting nullifies the
  73.           effect of the extra scan that will subsequently be preformed.
  74.  
  75. changequote
  76.           change quote symbols to the first and second arguments. The symbols
  77.           may be upto one character long. The command changequote without
  78.           arguments restores the original values i.e. ''.
  79.  
  80. changecom
  81.           change left and right comment markers from the default # and
  82.           new-line. With no arguments, the comment mechanism is effectively 
  83.           disabled. With one argument, the left marker becomes the argument
  84.           and the right marker becomes new-line. With two arguments, both
  85.           markers are affected. Comment markers may be upto one character long.
  86.  
  87. divert    m4 maintains 10 output streams numbered 0-9. The final output is the
  88.           concatenation of the streams in numerical order; initially stream 0
  89.           is the current stream. The divert macro changes the current stream
  90.           to its (digit-string) argument. Output diverted to a stream other
  91.           than 0 through 9 is discarded. Output to diversion 0 is output
  92.           immediately.
  93.  
  94. undivert  causes immediate output of text from diversions names as arguments,
  95.           or all diversions if no argument. Text may be undiverted into another
  96.           diversion. Undiverting discards the diverted text. It is not
  97.           possible to undivert(0).
  98.   
  99. divnum    returns the value of the current output stream.
  100.  
  101. dn1       reads and discards characters up to and including the next new-line.
  102.  
  103.  
  104. ifelse    has three or more arguments. If the first argument is the same string
  105.           as the second, then the value is the third argument. If not, and if
  106.           there are more than four arguments, the process is repeated with
  107.           arguments 4, 5, 6 and 7. Otherwise, the value is either the fourth
  108.           string, or if it is not present, null.
  109.  
  110. incr      returns the value of its argument incremented by one. The value of
  111.           the argument is calculated by interpreting an initial digitstring as
  112.           a decimal number.
  113.  
  114. decr      returns the value of its argument decremented by 1.
  115.  
  116. eval      evaluates its argument as an arithmetic expression, using 32-bit
  117.           arithmetic. Operators include +, -, *, /, %, ^(exponentiation),
  118.           bitwise &, |, ^, and relationals and parentheses. Octal and hex
  119.           numbers may be specified as in C. The second argument specifies
  120.           the radix for the result; the default is 10. The third argument may
  121.           be used to specify the minimum number of digits in the result.
  122.  
  123. len       returns the number of characters in its argument.
  124.  
  125. index     returns the position in its first argument where the second argument
  126.           begins (zero origin), or -1 if the second argument does not occur.
  127.  
  128. substr    returns a substring of its first argument. The second argument is a 
  129.           zero origin number selecting the first character; the third
  130.           argument indicates the length of the substring. A missing third
  131.           argument is taken to be large enough to extend to the end of the
  132.           first string.
  133.  
  134. translit  transliterates the characters in its first argument from the set
  135.           given by the second argument to the set given by the third. No
  136.           abbreviations are permitted.
  137.  
  138. include   returns the contents of the file named in the argument.
  139.  
  140. paste     as include but included text is not processed by m4, just output
  141.           literally.
  142.  
  143. sinclude  is identical to include, except that it says nothing if the file is
  144.           inaccesible.
  145.  
  146. spaste    as sinclude but included text is not processed by m4, just output
  147.           literally.
  148.  
  149.  
  150. syscmd    executes the system command given in the first argument. No value
  151.           is returned.
  152.  
  153. sysval    is the return code from the last call to syscmd.
  154.  
  155. maketemp  fills in a string of XXXXX in its argument with the current
  156.           process ID.
  157.  
  158. m4exit    causes immediate exit from m4. Argument 1, if given, is the exit
  159.           code; the default is 0.
  160.  
  161. m4wrap    argument 1 will be pushed back at final EOF; example;
  162.           m4wrap('cleanup()')
  163.  
  164. errprint  prints its argument on the diagnostic output file.
  165.  
  166. dumpdef   prints current names and definitions, for the named items, or for
  167.           all if no arguments are given.
  168.  
  169. traceon   with no arguments, turns on tracing for all macros (including
  170.           built-ins). Otherwise, turns on tracing for named macros.
  171.  
  172. traceoff  turns off trace globally and for any macros specified. Macros
  173.           specifically traced by traceon can be untraced only by specific
  174.           calls to traceoff.
  175.  
  176.